#!/bin/bash

# 文件传输系统构建脚本
# 构建 Go 服务器端和 Rust 客户端

set -e

# 检查是否需要构建Android版本
BUILD_ANDROID=false
if [[ "$1" == "--android" ]]; then
    BUILD_ANDROID=true
fi

echo "🚀 开始构建文件传输系统..."
echo

# 检查依赖
echo "📋 检查构建依赖..."

# 检查 Go
if ! command -v go &> /dev/null; then
    echo "❌ Go 未安装，请安装 Go 1.19+ 版本"
    echo "   下载地址: https://golang.org/dl/"
    exit 1
fi

GO_VERSION=$(go version | awk '{print $3}' | sed 's/go//')
echo "✅ Go 版本: $GO_VERSION"

# 检查 Rust
if ! command -v cargo &> /dev/null; then
    echo "❌ Rust 未安装，请安装 Rust"
    echo "   安装命令: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh"
    exit 1
fi

RUST_VERSION=$(rustc --version | awk '{print $2}')
echo "✅ Rust 版本: $RUST_VERSION"
echo

if [ "$BUILD_ANDROID" = true ]; then
    # 构建 Android ARM64 版本的 Go 服务器端
    echo "🔨 构建 Android ARM64 版本的 Go 服务器端..."
    CGO_ENABLED=0 GOOS=android GOARCH=arm64 go build -o server-android-arm64 server.go
    if [ $? -eq 0 ]; then
        echo "✅ Android ARM64 服务器端构建成功: ./server-android-arm64"
    else
        echo "❌ Android ARM64 服务器端构建失败"
        exit 1
    fi
    echo
else
    # 构建 Go 服务器端
    echo "🔨 构建 Go 服务器端..."
    go build -o server server.go
    if [ $? -eq 0 ]; then
        echo "✅ Go 服务器端构建成功: ./server"
    else
        echo "❌ Go 服务器端构建失败"
        exit 1
    fi
    echo
fi

# 构建 Rust 客户端
echo "🔨 构建 Rust 客户端..."
cargo build --release
if [ $? -eq 0 ]; then
    # 复制到根目录方便使用
    cp target/release/client ./client
    echo "✅ Rust 客户端构建成功: ./client"
else
    echo "❌ Rust 客户端构建失败"
    exit 1
fi

echo
echo "🎉 构建完成！"
echo

if [ "$BUILD_ANDROID" = true ]; then
    echo "📝 使用方法:"
    echo "1. 将 server-android-arm64 传输到 Android 设备"
    echo "2. 在 Termux 中运行: ./server-android-arm64"
    echo
    echo "📱 Android Termux 使用:"
    echo "   Android端: ./server-android-arm64"
    echo "   电脑端: ./client <Android_IP> <文件>"
else
    echo "📝 使用方法:"
    echo "1. 启动服务器: ./server"
    echo "2. 发送文件: ./client <服务器IP> <文件路径>"
    echo
    echo "💻 本地测试:"
    echo "   终端1: ./server"
    echo "   终端2: ./client 127.0.0.1 /path/to/your/file.mp4"
    echo
    echo "📱 Android Termux 使用:"
    echo "   Android端: ./server"
    echo "   macOS端: ./client <Android_IP> /path/to/your/file.mp4"
fi

echo
echo "🔧 高级选项:"
echo "   服务器: ./server --host 0.0.0.0 --port 8888 --save-dir ./received_files"
echo "   客户端: ./client <IP> <文件> --port 8888"
echo "   Android构建: ./build.sh --android"